Wiki

Clone wiki

darudar-backend / Ресурсы пользователя

[TOC] #Формат объекта ##В списке

#!json
{
  "pk_user": 171463,
  "login": "tester",
  "sex": 0,
  "active": 1,
  "avatar": {
    "uri_c50": "http://img53.static.darudar.org/c50/02/00/ff/b3/ffb359da7ade35eb1734669baf2fd0d679d51104.jpg",
    "uri_c600": "http://img53.static.darudar.org/c600/02/00/ff/b3/ffb359da7ade35eb1734669baf2fd0d679d51104.jpg"
  },
  "thanks_count": 0,
  "gifts_presented_count": 0,
  "profile": { // <-- расширенная информация (профиль, см. ниже)
    "name": "tester",
    "city": {
      "pk_city": 447109,
      "city_name": "Жуковский",
      "region_name": "Москва и Московская обл.",
      "country_name": "Россия (Russia)",
      "country_code": "RU"
    }
  }
}

##Полный

#!json
{
    "pk_user": 171452, // ID пользователя
    "login": "brutto", // Логин пользователя
    "sex": 2, // Пол (см. ниже)
    "dtime_registration": 1353951897, // timestamp регистрации в системе
    "dtime_visited": 1478681506, // timestamp последнего визита
    "active": 1, // Статус профиля (см. ниже)
    "avatar": { // <-- Ссылки на файл с аватаром
      "uri_c50": "http://img62.static.darudar.org/c50/00/00/57/6c/576ccc19e0103e892456f4ea3f71e3c02670a2f7.jpg",
      "uri_c600": "http://img62.static.darudar.org/c600/00/00/57/6c/576ccc19e0103e892456f4ea3f71e3c02670a2f7.jpg"
    },
    "gifts_count": 20, // Кол-во опубликованных даров
    "thanks_count": 38, // Кол-во опубликованных благодарностей
    "gifts_presented_count": 0, // Кол-во даров со статусом <Подарено>
    "gifts_offered_count": 17, // Кол-во даров со статусом <Дарится>
    "profile": { // Расширенная информация о пользователе (профиль)
      "name": "Антонина",
      "birth_date": [ // <-- указанная дата рождения
          1987, // <-- null если год скрыт настройками приватности
          9, // <-- месяц
          8 // <-- день
      ]
      "about": "Хоп хей!",
      "city": {
        "pk_city": 445961,
        "city_name": "Архара",
        "region_name": "Амурская обл.",
        "country_name": "Россия (Russia)",
        "country_code": "RU"
      }
    },
    "relations:me": { <-- Отношения текущего пользователя 
      "subscription": { <-- Подписка
        "pk_sub": 3, <-- Идентификатор подпискки
        "dtime": 1481291683 <-- Дата оформления подписки
      }
    }

}
Поле sex может принимать следующие значения:

  • 0 - не указан,
  • 1 - муж,
  • 2 - жен.

Поле active может принимать следующие значения:

  • 2 -- профиль требуется активация,
  • 1 -- профиль активен,
  • 0 -- профиль заблокирован,
  • -1 -- профиль удалён

Поле profile может отсутствовать, если в настройках приватности профиля указаны соответствующие настройки.

#Ресурсы пользователя

Настройки

Текущий пользователь

URI: GET ~/me Информация о текущем авторизованном пользователе. Данный метод отличается от вывода профиля сообщника (хотя и похож, пока). Отличия в следующем:

  • профиль profile показывается всегда (вне зависимости от настроек приватности)
  • в профиле присутствуют настройки приватности privacy
  • наличие контактов contacts
  • дата рождения, если указана, всегда выводится (вне зависимости от настроек приватности)

Пример ответа:

#!json
{
    "me": {
        ... поля из полного вывода профиля пользователя
        "profile": { 
            ... поля из полного вывода профиля пользователя            
            "privacy": { // <-- настройки приватности профиля
                "fk_user": 171452,
                "hide_profile_to_guest": true,
                "hide_birth_year": true
            },
            "birth_date": [ // <-- указанная дата рождения
                1987,
                9,
                8
            ]
        },
        "contacts": [
            {...}, // <-- контакты (см. контакты в списке)
            {...},
        ],
        "media": { // <-- медиа-файлы
            "avatar": [
               {...} // <-- файл-аватара с указателем
            ]
        }
    }
}

Текущий пользователь (редактирование профиля)

URI: PUT ~/me Редактирование профиля пользователя

Параметр Тип Значение
name string Имя (max 250)
about text О себе
sex* int Пол
birth_date string Дата рождения (в формате YYYY-MM-DD)
avatar int Файл-изображение
hide_year_birth bool Настройка для скрытия года рождения
hide_profile_to_guest bool Настройка для скрытия профиля для гостей

Параметр sex может принимать следующие значения:

  • 0 -- пол не указан
  • 1 -- мужской
  • 2 -- женский

Пример запроса:

PUT /me HTTP/1.1
Host: api.brutto.dev.darudar.com
Content-Type: application/x-www-form-urlencoded
Authorization: <token>
Cache-Control: no-cache

avatar=1103&name=%D0%92%D0%BE%D1%82%D0%B0%D0%BA%D0%BE%D0%B2+%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%801&birth_date=2013-02-02&sex=1&about=%D0%A7%D1%82%D0%BE-%D1%82%D0%BE+%D1%82%D0%B0%D0%BA%D0%BE%D0%B5+%D1%83%D0%B6%D0%B5+%D0%B1%D1%8B%D0%BB%D0%BE&hide_year_birth=1&hide_profile_to_guest=1

Пример ответа:

#!json
{
    "saved": "ok"
}

Профиль пользователя

URI: GET ~/users/<login>

Профиль пользователя <login>.

Пример запроса:

GET /users/brutto HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json
В ответе в свойстве user будет находится JSON-объект профиля пользователя.

Пример ответа:

#!json
{
  "user": {...} <-- пользователь (см. выше полный формат вывода)
}

Списки даров пользователя

URI: GET ~/users/<login>/gifts[/<flow>]

Список даров пользователя <login>. Опционально можно указать <flow> -- это фильтр даров, который фильтрует дары по их статусу. Он может принимать следующие значения: all | offered | promised | given | trashed | drafted | deleted Значение <flow> по умолчанию: all. Доступна постраничная навигация.

Значения flow:

  • all -- все опубликованные дары
  • offered -- дары в статусе "Дарится"
  • promised -- дары в статусе "Обещано"
  • given -- дары в статусе "Подарено"
  • trashed -- дары пометкой "не-дар"
  • drafted -- дары-черновики
  • deleted -- дары, которые были удалены*

! Удалить дар может или сам автор дара или же система автоматически по времени истечения. Удалённый дар доступен в течение 14 дней с момента удаления.

Пример запроса:

GET /users/root/gifts?p=1&pp=3 HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
accept: application/json
authorization: <token>

В ответе в свойстве gifts будет содержатся список даров указанного <flow> Пример ответа:

#!json
{
  "gifts": [
    {...}, <-- Дар (см. вывод дара в списке)
    {...},
    {...}
  ],
  "paginator": {...} // <-- См ссылку ниже/выше о постраничной навигации
}
Поле privacy (приватность) может принимать следующие значения:

  • 0 -- публичный,
  • 1 -- только для заинтересованных,

Поле status (статус дара) может принимать следующие значения:

  • 0 -- дарится,
  • 1 -- обещано,
  • 2 -- подарено,

Вы можете использовать paginatorдля постраничной навигации.

Оформление подписки на пользователя

URI: POST | DELETE ~/users/<login>/subscribe

Оформление подписки на пользователя <login> (отписка).

Пример запроса:

POST /users/root/subscribe HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "subscribe": "ok"
}
В случае удаления подписки в ответе придёт свойство unsubscribe.

Список даров, которые желал пользователь

URI: GET ~/users/<login>/wishes/gifts/<flow>

Список даров, которые желал пользователь <login>. Параметр <flow> является фильтром даров, которые желал пользователь и может иметь следующие значения: offered | promised | given | other. Если в методе списка даров пользователя параметр flow обозначает именно статусы самих даров, то в этом методе этот параметр обозначает отношение пользователя <login> к дарам в списке!

Значения flow:

  • offered -- то, что дарится, но не обещано никому
  • promised -- то, что обещано пользователю
  • given -- то, что подарено пользователю
  • other -- то, что обещано или подарено другим

Пример запроса:

GET /users/brutto/wishes/gifts/given?f=0&s=3 HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

В ответе придёт список gifts для указанного flow.

Пример ответа:

#!json
{
  "gifts": [
    {...}, <-- Дар (см. вывод дара в списке)
    {...},
    {...}
  ],
  "paginator": {...} // <-- См ссылку ниже/выше о постраничной навигации
}
Вы можете использовать paginatorдля постраничной навигации.

Список благодарностей пользователя

URI: GET ~/users/<login>/thanks

Список благодарностей пользователя <login> за полученные дары.

Пример запроса:

GET /users/brutto/thanks?f=0&s=2 HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

В ответе приходит объект thanks в котором содержатся благодарности указанного пользователя. Доступна постраничная навигация.

Пример ответа:

#!json
{
  "thanks": [
    {
      "pk_thank": 1923823,
      "dtime": 1459367236,
      "dtime_update": 1459367236,
      "text": "привет",
      "preview": null,
      "video": [],
      "score": 0,
      "comments_count": 0,
      "author": {
        "pk_user": 171452,
        "login": "brutto",
        "sex": 2,
        "active": 1,
        "avatar": {
          "uri": "http://api.brutto.dev.darudar.com/tmp/uploads/-/c50/00/00/57/6c/576ccc19e0103e892456f4ea3f71e3c02670a2f7.jpg"
        },
        "profile": {
          "name": "Антонина"
        }
      }
    },
    {
      "pk_thank": 1923822,
      "dtime": 1459366468,
      "dtime_update": 1459366468,
      "text": "пасиб",
      "preview": null,
      "video": [],
      "score": 0,
      "comments_count": 0,
      "author": {
        "pk_user": 171452,
        "login": "brutto",
        "sex": 2,
        "active": 1,
        "avatar": {
          "uri": "http://api.brutto.dev.darudar.com/tmp/uploads/-/c50/00/00/57/6c/576ccc19e0103e892456f4ea3f71e3c02670a2f7.jpg"
        },
        "profile": {
          "name": "Антонина"
        }
      }
    }
  ],
  "paginator": {...} // <-- См ссылку ниже/выше о постраничной навигации
}

Список встреч

URI: ~/meetings

Список встреч текущего (авторизованного) пользователя.

Пример запроса:

GET /meetings HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "meetings": [
    {...}, <-- Встреча (см. вывод встрече на списке)
    {...},
    {...}  
  ]
}
Формат вывода встреч

Поиск пользователей

URI: GET ~/search/users

Поиск активных участников (пользователей)

Параметр Тип Описание
q (обязательный) string Полнотекстовый запрос

Пример запроса:

GET /search/users/%D1%88%D1%82%D0%B0%D0%BD%D1%8B%20%D0%BD%D0%B0%20%D0%BB%D1%8F%D0%BC%D0%BA%D0%B0%D1%85 HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json

{
  "users": [
    {...}, <-- Пользователь (см. вывод пользователя на списке)
    {...}
  ],
  "paginator": {...}, <-- см. постраничный вывод
  "search": { <-- мета по поиску
    "time": 0.011, <-- время затраченное на поиск
    "total_found": 2 <-- общее кол-во похожих объектов (пользователей etc)
  }
}
Доступна постраничная навигация.

Уведомления пользователя

URI: GET ~/notifications

Последние уведомления пользователя. При получении счётчик непрочитанных событий обнуляется!

Пример запроса:

GET /notifications HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "notifications": [
    {...}, <-- Событие (см. вывод события в списке )
    {...}
  ]
}
Формат вывода событий

Поле author опционально и может отсутствовать для системных событий.

Updated